在白鹭引擎中调用第三方 JavaScript 代码
在游戏开发过程中,往往需要介入一些第三方编写的 JavaScript 库。这些库一般会有三种来源:
- 游戏会运行在第三方提供的特殊容器中,容器已注入了特定的 JavaScript 接口。典型案例:微信小游戏平台接口
- 第三方提供了 JavaScript 代码,需要将这部分代码打包进游戏项目中。典型案例:渠道接入SDK
- 第三方将库提交到了 npm 包管理器中。典型案例:axios
针对这三种情况,白鹭分别提供了三种解决方案
- 编写 .d.ts 文件
- 编写 Egret Library
- 打包 npm library
我们将对这三种方式分别进行介绍
编写 .d.ts 文件
由于第三方 JavaScript 代码与您游戏的 TypeScript 逻辑绝大多数情况下运行在同一个 JavaScript容器上下文中,所以您可以直接在 TypeScript 代码中调用第三方SDK的JavaScript 接口即可。只需要额外声明一个 .d.ts 文件,确保 TypeScirpt 编译器不会因此抛出异常即可。
以微信小游戏为例,您只需编写一个名为 wx.d.ts 的文件,如下即可:
declare var wx: any;
由于上述 wx 这个变量类型为 any ,开发者就可以在任意逻辑中直接调用 wx 中的任意方法,如果您希望进一步得到更友好的代码提示,您需要修改 wx.d.ts 文件,给出更明确的类型声明,具体的类型声明方式可以参见添加.d.ts 这篇文档
编写 Egret Library
TODO
打包 npm library
TODO